草庐IT

Java HotSpot 枚举开销

全部标签

java - Java成员枚举类型应该大写吗?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭1年前。Improvethisquestion这里的肛门问题:我们有Java枚举,它们是自己的类,枚举是类的成员:publicenumreportType{...每次我看到这个都让我感到震惊*,因为当我看到它在声明中使用时,它是一个类型,并且类型应该大写。但是当我尝试将它大写时,Eclipse警告我不应该将字段名称大写。我认为Eclipse可能比我更了解官方Java约定,但它似乎并不正确。甚至翻阅了Java约定文档,但没有看到引用此问

java - 将枚举转换为迭代器

我在工作表上遇到了一个问题,即创建一个适配器以将枚举转换为迭代器。当我尝试运行以下代码时,出现空指针异常。importjava.util.Vector;importjava.util.Arrays;importjava.util.Enumeration;importjava.util.Iterator;publicclassConvertEnumeration{publicstaticvoidmain(String[]args){int[]ourArray={0,1,2,3,4,5,6,7,8,9};Vectorvector=newVector(Arrays.asList(ourArr

java - 枚举有什么用?

这个问题在这里已经有了答案:Whatareenumsandwhyaretheyuseful?(27个答案)关闭7年前。在阅读了一些关于枚举的问题和答案后,我发现它并不是很有用......它介于类和变量之间,但我知道我可以在哪里使用它,因此它比类或几个变量更有用。

java - 如何处理java枚举和数据库表之间的重复?

在我们的应用程序中,某些实体必须由枚举表示,这是很常见的情况:例如类型、类别、状态等。通常,代码中有条件或流程使用值来决定一个Action或另一个Action,因此应用程序必须以某种方式“知道”这些值(即它必须能够引用一个特定的实例来决定而不是引用整个类)。这就是我们使用枚举而不是普通类的原因。问题是这些实体还需要作为其他实体的字段存储(或至少引用)在数据库中。我们通常为每个实体创建一个表,以便能够在这些列中进行引用完整性检查,并且数据仅在数据库中具有“意义”,而无需引用枚举来找出每个id的含义.理想情况下,这些实体的数据应该从枚举中的数据中填充,但现在我们在db初始化脚本中重复了这些

java - 如何在 Eclipse 中将常量重构为枚举?

如何使用Eclipse将Java常量重构为枚举?我发现eclipse中没有内置功能:http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Freference%2Fref-menu-refactor.htm我找到了一个插件:http://code.google.com/p/constants-to-enum-eclipse-plugin/.我想知道插件是否可行,或者有人使用更好的方法。我总是可以自己创建一个枚举类并剪切和粘贴常量,这在2012年很乏味。请不要给我指点另一个IDE,我太老了,不能

java - 在匿名类中引用公共(public)枚举结果

我在编译时得到了一个我没有预料到的匿名类。相关代码如下,再进行更详细的解释:完整的CircuitType.java:publicenumCircuitType{V110A20,V110A30,V208A20,V208A30}来自Auditor.java,第3-9行:publicclassAuditor{privateString[]fileNames;privateintnumV110A20;privateintnumV110A30;privateintnumV208A20;privateintnumV208A30;来自Auditor.java,第104-121行:[...]switc

java - 如何在 getter 和 setter 中使用枚举?

所以我想做的是:写一个用户类一个用户:有一个用户名,例如“fj3”有一个用户类型,可以是:'user'、'editor'或'admin'有一个名字,例如'Francis'有一个以用户名、用户类型和名称为参数的构造函数有一个getUsername()方法有一个getUserType()方法有一个getName()方法有一个setUserType()方法,该方法将其中一种用户类型作为参数到目前为止我的代码:publicclassUser{publicStringid;publicStringuserPermissions;publicStringactualName;publicUser(

java - 解决由于 C++ 导致的 Google protobuf 中枚举字段命名限制的解决方案

您可能知道,当您在Googleprotobuf中使用全局范围或在同一消息中定义枚举时,如果枚举是同级的,则不能将枚举字段名称定义为相同。即使您打算使用proto文件生成Java代码,protoc也会提示它并且不会生成任何带有以下消息的代码。"XXX"isalreadydefinedin"your.package.name".NotethatenumvaluesuseC++scopingrules,meaningthatenumvaluesaresiblingsoftheirtype,notchildrenofit.Therefore,"XXX"mustbeuniquewithin"yo

java - 枚举定义中的静态上下文

Java的enum工具提供的语法糖有时会有点令人困惑。考虑这个不编译的例子:publicenumTestEnum{FOO("foo"){publicvoidfoo(){helper();//谁能解释为什么编译器说Non-staticmethod'helper()'cannotbereferencedfromastaticcontext这个上下文究竟是静态的吗?您可以通过更改对this.helper()的调用来进行编译(这里有一个令人困惑的地方:如果我们真的是在编译器建议的“静态上下文”中,“this”如何工作?)或通过将helper()的可见性提高到默认级别。你更喜欢哪个?另外,请随时

java - 最小化 Java 线程上下文切换开销

我有一个在Sun1.632位VM/Solaris10(x86)/Nahelem8核(每个核2个线程)上运行的Java应用程序。应用程序中的一个特定用例是响应一些外部消息。在我的性能测试环境中,当我在接收外部输入的同一线程中准备和发送响应时,与将消息移交给单独的线程以发送响应相比,我获得了大约50us的优势。我使用ThreadPoolExecutor和SynchronousQueue来进行切换。根据您的经验,在将任务调度到线程池和执行任务之间可接受的预期延迟是多少?过去有哪些想法对您有用以尝试改善这一点? 最佳答案 “可接受的延迟”完